#include "func.h"

int main (int argc, char** argv)
{
	char item,*posicao;
	char buscador[ra];
	int a=0;
	FILE *f;
	if (argc != 3)
	{
		printf ("Parametros no formato incorreto.\n");
		printf ("Saindo do programa.\n");
		exit (1);
	}

	abre_arquivo2 (argv[1], "saidaalt.txt");	
	abre_arquivo (argv[1], argv[2]);
	
	while (1)
	{
		printf ("\n\n\n");
		printf ("1 - Converter arquivo fixo para variavel.\n");
		printf ("2 - Imprimir arquivo fixo.\n");
		printf ("3 - Imprimir arquivo variavel.\n");
		printf ("4 - Busca por chave primaria.\n");
		printf ("5 - Extracao de chave primaria.\n");
		printf ("6 - Ordenacao do arquivo de chaves.\n");
		printf ("7 - Listagem das chaves nao ordenadas.\n");
		printf ("8 - Listagem das chaves ordendas.\n");
		printf ("9 - Criacao do arquivo de indice.\n");
		printf ("A - Pesquisa por chave primaria.\n");
		printf ("B - Remocao de registro.\n");
		printf ("Q - Saida do programa.\n");
		printf ("Escolha a opcao:");
		scanf (" %c", &item);
		
		switch (item)
		{
			case '1':
				f = fopen ("saidaalt.txt", "r");
				GERA_ARQ_COMPACTO (f, "compacto.txt");
				fclose (f);
				system ("mv compacto.txt ARQUIVO_FORMATO_VARIAVEL.txt");
				break;
				
			case '2':
				f = fopen ("saidaalt.txt", "r");
				GERA_ARQ_FIXO (f, "fixo.txt");
				imprimir_arquivo ("fixo.txt");
				fclose (f);
				break;
				
			case '3':
				f = fopen ("saidaalt.txt", "r");
				GERA_ARQ_COMPACTO (f, "compacto.txt");
				imprimir_arquivo ("compacto.txt");
				fclose (f);
				break;
				
			case '4':
				f = fopen ("saidaalt.txt", "r");
				//GERA_ARQ_COMPACTO (f, "compacto.txt");
				while(a<=ra){
				
				scanf("%c",&buscador[a]);
				a++;
				}
				buscador[a]='\0';
				a=0;
				printf("%s\n",buscador);
				posicao = buscapk(buscador);
				fclose (f);
	
				break;
				
			case '5':
				f = fopen ("saidaalt.txt", "r");
				GERA_ARQ_COMPACTO (f, "compacto.txt");
				extract_pk ("compacto.txt", "pk.txt");
				system ("rm -rf saidaalt.txt compacto.txt fixo.txt saida.txt");
				fclose(f);
				break;
				
			case '6':
				system ("sort pk.txt > pkord.txt");
				system ("rm -rf saidaalt.txt compacto.txt fixo.txt saida.txt");
				break;
			
			case '7':
				printf("Imprimindo lista de chaves\n\n");
				imprimir_arquivo("pk.txt");
				break;
				
			case '8':
				printf("Imprimindo indice ordenado\n\n");
				imprimir_arquivo("pkord.txt");
				break;
						
			case '9':
				printf("Arquivo para pesquisa...\n\n");
				break;
			case 'a':
			case 'A':
				printf("Pesquisa...\n\n");
				break;
				
			case 'b':
			case 'B':
				
				break;
				
			case 'Q':
			case 'q':
				printf ("Removendo arquivo auxiliares\n");
				system ("rm -rf saidaalt.txt compacto.txt fixo.txt saida.txt");
				return 0;
				
			default:
				printf ("Opcao invalida.\n");
				continue;
		}
	}
	return 0;
}
